iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
0
Microsoft Azure

深入淺出Azure常用服務系列 第 22

[Day22] 第二十二課 Azure Application Gateway-1[安全]

  • 分享至 

  • xImage
  •  

先前介紹PaaS服務中的Web app,讓我們可以快速的架設網站服務,
輕鬆點幾個鍵就能開出一個php可執行的環境

但我們要知道,在真實世界,攻擊是無所不在的,雖然WebApp可以隨時調整規模,
服務吞吐量,但經不起打阿,所以在Azure上要開啟所謂的WAF
(Web application Firewall)服務,微軟本身提供Application Gateway,
就可以做一些WAF防護的功能

如下參考資料,透由Application gateway可以阻擋如SQL injection,
Xss攻擊等,以保護後端服務

https://azure.microsoft.com/zh-tw/blog/azure-web-application-firewall-waf-generally-available/
Imgur

情境:透由Application Gateway服務保護後端Web App

首先我們要進入先前建立的SQL Database,新建一張表,
後續要模擬SQL Injection做資料撈取

我們先建立一張table2的表,資料行有(id, name),並寫入一些資料
Imgur
Imgur
並把先前的Web App的hello.php程式修改一下,改成會撈取表單值GET值
另存成hello2.php,上傳至Web App環境

Imgur

<?php
    $id=$_GET["id"];

    $serverName = "ithomemicro.database.windows.net"; // update me
    $connectionOptions = array(
        "Database" => "ithomemicromilua", // update me
        "Uid" => "xxxx", // update me
        "PWD" => "xxxx" // update me
    );
    //Establishes the connection
    $conn = sqlsrv_connect($serverName, $connectionOptions);
    $tsql= "SELECT *
         FROM [dbo].[table2] where id = $id";
    $getResults= sqlsrv_query($conn, $tsql);
    if ($getResults == FALSE)
        echo (sqlsrv_errors());
    while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
     echo ($row['name'] . PHP_EOL);
     echo '<br>';
    }
    sqlsrv_free_stmt($getResults);
?>

跑出來的結果就是撈出id=1的name欄位值

Imgur
那SQL Injection的下法就是在網址後面從id=1 改為 id=1 or 1=1
那就會變成這樣,整張表的資料都被撈出來了

Imgur
若這時候我們有WAF,就可以阻擋這樣的攻擊,使攻擊失效,
那接下來就是建立WAF的說明

點選建立資源,搜尋輸入Application Gateway,
選擇應用程式閘道

Imgur
Imgur
Imgur

依序輸入下列資訊,因為是Lab的關係,
我們選擇最低的定價層
執行個數輸入1
SKU為中
防火牆狀態選擇已啟用
防火牆模式選擇prevention(開啟阻擋)
HTTP2 停用
Imgur
這時子網路的選擇遇到問題了,跳出提示應用程式閘道的子網路要獨立開來
因此我們再去子網路設定裡面建立
Imgur

建立新的位址空間
Imgur
新增子網路WAF
Imgur
子網路設定完成後,再回來選就可以下一步了
Imgur
在下一步之前,我們要先了解應用程式閘道的整個設定流程
要先有前端IP,接著由http/https接聽程式負責接聽,
並套用規則後才會將流量導至後端集區,後端集區的服務可為1至多個

Imgur

接著我們依序開始設定,相關的設定後續可以再改,
可以參考下幾張圖的設定方式先建立出應用程式閘道
Imgur
Imgur
Imgur
Imgur
Imgur
Imgur
Imgur
Imgur
Imgur
Imgur
整個過程大約要15~20分鐘,建立完成後,看到WAF前端IP為104.215.184.99,
很開心就把網址掛上填進去,想要體會美好的成果,
結果頁面跳出 502 Server Error

Imgur
後來搞了很久終於找到解法,簡單說,如果後端集區是一般的VM,
只做IPv4轉址應該沒什麼問題,但如果後端集區是Web App,
在設定上還要結合一些Powershell Code才能成功做出來

那到底該怎麼繼續做下去呢?我們明天再繼續說明…

See you next day ^^”


上一篇
[Day21] 第二十一課 Azure Bastion-虛擬機安全存取 [安全]
下一篇
[Day23] 第二十三課 Azure Application Gateway- 2[安全]
系列文
深入淺出Azure常用服務32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言